[INFO] cloning repository https://github.com/DDRBoxman/decklink-cxx
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DDRBoxman/decklink-cxx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDDRBoxman%2Fdecklink-cxx", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDDRBoxman%2Fdecklink-cxx'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cfe47a415df287f637b0b1f4b0c1e265ed821045
[INFO] fixing DDRBoxman/decklink-cxx against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDDRBoxman%2Fdecklink-cxx" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DDRBoxman/decklink-cxx
[INFO] finished tweaking git repo https://github.com/DDRBoxman/decklink-cxx
[INFO] tweaked toml for git repo https://github.com/DDRBoxman/decklink-cxx written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DDRBoxman/decklink-cxx on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DDRBoxman/decklink-cxx already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a
[INFO] running `Command { std: "docker" "start" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling thiserror v1.0.58
[INFO] [stderr]    Compiling xml-rs v0.8.20
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking libloading v0.8.3
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking bytemuck v1.15.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling link-cplusplus v1.0.9
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling scratch v1.0.7
[INFO] [stderr]    Compiling semver v1.0.22
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]    Compiling anyhow v1.0.81
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]    Compiling cxxbridge-flags v1.0.120
[INFO] [stderr]    Compiling built v0.7.1
[INFO] [stderr]    Compiling unicode-width v0.1.11
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking xcursor v0.3.5
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]     Checking unicode-xid v0.2.4
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling cxx v1.0.120
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]    Compiling syn v2.0.57
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking wgpu-types v0.17.0
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]     Checking indexmap v2.2.6
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking bitstream-io v2.2.0
[INFO] [stderr]     Checking petgraph v0.6.4
[INFO] [stderr]    Compiling show-image v0.14.0
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking rgb v0.8.37
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking half v2.4.0
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]    Compiling cxx-build v1.0.120
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.58
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling cxxbridge-macro v1.0.120
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking naga v0.13.0
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking image-webp v0.1.1
[INFO] [stderr]    Compiling show-image-macros v0.12.3
[INFO] [stderr]    Compiling decklink-cxx v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed build.rs (1 fix)
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/sources/decklink-cxx/src/bridge.rs.cc:3:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from ./include/callback.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:85: warning: unused parameter 'notificationEvents' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:127: warning: unused parameter 'newDisplayMode' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:176: warning: unused parameter 'detectedSignalFlags' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:10:115: warning: unused parameter 'audioPacket' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    10 | HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioPacket) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:15:68: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    15 | HRESULT STDMETHODCALLTYPE CXXInputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                             ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame*, BMDOutputFrameCompletionResult)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:39:120: warning: unused parameter 'result' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    39 | HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:49:69: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    49 | HRESULT STDMETHODCALLTYPE CXXOutputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                              ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from ./include/bridge.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc: In member function 'virtual HRESULT ConversionFrame::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc:101:67: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:   101 | HRESULT STDMETHODCALLTYPE ConversionFrame::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                            ~~~~~~~^~~
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]  --> src/bridge.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ($r:ident, $c:expr) => {
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]   = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ($r:ident, $c:expr_2021) => {
[INFO] [stdout]   |                       +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: errors present after applying fixes to crate `decklink_cxx`
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/bridge.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ($r:ident, $c:expr, $t:ident) => {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ($r:ident, $c:expr_2021, $t:ident) => {
[INFO] [stdout]    |                       +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/bridge.rs
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:258:82
[INFO] [stdout]     |
[INFO] [stdout] 258 |         fn CreateDeckLinkAPIInformationInstance() -> *mut IDeckLinkAPIInformation;
[INFO] [stdout]     |                                                                                  ^
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout]     = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected one of `->`, `;`, `where`, or `{`, found keyword `unsafe`
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/bridge.rs:476:46
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:265:71
[INFO] [stdout]     |
[INFO] [stdout] 265 |         fn Release(self: Pin<&mut IDeckLinkAPIInformation>) -> c_ulong;
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout]     |                                                                       |
[INFO] [stdout]     |                                                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:271:57
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn Release(self: Pin<&mut IDeckLink>) -> c_ulong;
[INFO] [stdout]     |                                                         ^
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            244 |     unsafe extern "C++" {
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:273:70
[INFO] [stdout]     |
[INFO] [stdout] 273 |         fn CreateDeckLinkIteratorInstance() -> *mut IDeckLinkIterator;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout]     |                                                                      |
[INFO] [stdout]     |                                                                      help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                         - while parsing this item list starting here
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:278:23
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:280:65
[INFO] [stdout]     |
[INFO] [stdout] 280 |         fn Release(self: Pin<&mut IDeckLinkIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            476 |         unsafe fn Release(obj: *mut IUnknown)unsafe ;
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                                              ^^^^^^ expected one of `->`, `;`, `where`, or `{`
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:296:23
[INFO] [stdout]     |
[INFO] [stdout] 296 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            ...
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:298:76
[INFO] [stdout]     |
[INFO] [stdout] 298 |         fn Release(self: Pin<&mut IDeckLinkDisplayModeIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            490 |     }
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:300:84
[INFO] [stdout]     |
[INFO] [stdout] 300 |         fn GetDisplayMode(self: Pin<&mut IDeckLinkDisplayMode>) -> c_BMDDisplayMode;
[INFO] [stdout]     |                                                                                    ^
[INFO] [stdout]     |                                                                                    |
[INFO] [stdout]     |                                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |     - the item list ends here
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:301:68
[INFO] [stdout]     |
[INFO] [stdout] 301 |         fn GetWidth(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:302:69
[INFO] [stdout]     |
[INFO] [stdout] 302 |         fn GetHeight(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected `;`
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:308:68
[INFO] [stdout]     |
[INFO] [stdout] 308 |         fn Release(self: Pin<&mut IDeckLinkDisplayMode>) -> c_ulong;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/bridge.rs:476:46
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:325:23
[INFO] [stdout]     |
[INFO] [stdout] 325 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:326:69
[INFO] [stdout]     |
[INFO] [stdout] 326 |         fn StartStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            476 |         unsafe fn Release(obj: *mut IUnknown)unsafe ;
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:327:68
[INFO] [stdout]     |
[INFO] [stdout] 327 |         fn StopStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                                              ^^^^^^
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:328:62
[INFO] [stdout]     |
[INFO] [stdout] 328 |         fn Release(self: Pin<&mut IDeckLinkInput>) -> c_ulong;
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:333:23
[INFO] [stdout]     |
[INFO] [stdout] 333 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:346:23
[INFO] [stdout]     |
[INFO] [stdout] 346 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: aborting due to 2 previous errors
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:355:94
[INFO] [stdout]     |
[INFO] [stdout] 355 |         fn DetachAllPackets(self: Pin<&mut IDeckLinkVideoFrameAncillaryPackets>) -> c_hresult;
[INFO] [stdout]     |                                                                                              ^
[INFO] [stdout]     |                                                                                              |
[INFO] [stdout]     |                                                                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:357:66
[INFO] [stdout]     |
[INFO] [stdout] 357 |         fn GetDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                  ^
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:358:67
[INFO] [stdout]     |
[INFO] [stdout] 358 |         fn GetSDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:359:74
[INFO] [stdout]     |
[INFO] [stdout] 359 |         fn GetLineNumber(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u32; // On output, zero is auto
[INFO] [stdout]     |                                                                          ^
[INFO] [stdout]     |                                                                          |
[INFO] [stdout]     |                                                                          help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:360:78
[INFO] [stdout]     |
[INFO] [stdout] 360 | ...ut IDeckLinkAncillaryPacket>) -> u8; // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
[INFO] [stdout]     |                                       ^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:362:67
[INFO] [stdout]     |
[INFO] [stdout] 362 |         fn GetWidth(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:363:68
[INFO] [stdout]     |
[INFO] [stdout] 363 |         fn GetHeight(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:364:70
[INFO] [stdout]     |
[INFO] [stdout] 364 |         fn GetRowBytes(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout]     |                                                                      |
[INFO] [stdout]     |                                                                      help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:369:23
[INFO] [stdout]     |
[INFO] [stdout] 369 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:381:23
[INFO] [stdout]     |
[INFO] [stdout] 381 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:395:23
[INFO] [stdout]     |
[INFO] [stdout] 395 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:404:23
[INFO] [stdout]     |
[INFO] [stdout] 404 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:409:23
[INFO] [stdout]     |
[INFO] [stdout] 409 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:411:63
[INFO] [stdout]     |
[INFO] [stdout] 411 |         fn Release(self: Pin<&mut IDeckLinkOutput>) -> c_ulong;
[INFO] [stdout]     |                                                               ^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:415:76
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fn CreateVideoConversionInstance() -> *mut IDeckLinkVideoConversion;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:421:23
[INFO] [stdout]     |
[INFO] [stdout] 421 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:425:56
[INFO] [stdout]     |
[INFO] [stdout] 425 |         fn Release(self: Pin<&mut IUnknown>) -> c_ulong;
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:444:34
[INFO] [stdout]     |
[INFO] [stdout] 444 |         ) -> *mut ConversionFrame;
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:446:96
[INFO] [stdout]     |
[INFO] [stdout] 446 |         unsafe fn new_input_callback(callback: *mut RustInputCallback) -> *mut CXXInputCallback;
[INFO] [stdout]     |                                                                                                ^
[INFO] [stdout]     |                                                                                                |
[INFO] [stdout]     |                                                                                                help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:448:99
[INFO] [stdout]     |
[INFO] [stdout] 448 |         unsafe fn new_output_callback(callback: *mut RustOutputCallback) -> *mut CXXOutputCallback;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:450:69
[INFO] [stdout]     |
[INFO] [stdout] 450 |         unsafe fn GetDisplayName(decklink: *mut IDeckLink) -> String;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:452:87
[INFO] [stdout]     |
[INFO] [stdout] 452 |         unsafe fn GetDisplayModeName(displayMode: *mut IDeckLinkDisplayMode) -> String;
[INFO] [stdout]     |                                                                                       ^
[INFO] [stdout]     |                                                                                       |
[INFO] [stdout]     |                                                                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:454:99
[INFO] [stdout]     |
[INFO] [stdout] 454 |         unsafe fn GetInput(decklink: *mut IDeckLink, input: *mut *mut IDeckLinkInput) -> c_hresult;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:459:23
[INFO] [stdout]     |
[INFO] [stdout] 459 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:464:23
[INFO] [stdout]     |
[INFO] [stdout] 464 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:467:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |             -> c_hresult;
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:474:23
[INFO] [stdout]     |
[INFO] [stdout] 474 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:476:46
[INFO] [stdout]     |
[INFO] [stdout] 476 |         unsafe fn Release(obj: *mut IUnknown);
[INFO] [stdout]     |                                              ^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         type RustInputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout]    = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:68:64
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn video_input_format_changed(self: &RustInputCallback);
[INFO] [stdout]    |                                                                ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |         type RustOutputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:79:69
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn scheduled_playback_has_stopped(self: &RustOutputCallback);
[INFO] [stdout]    |                                                                     ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ravif v0.11.5
[INFO] [stderr]     Checking image v0.25.1
[INFO] [stderr]     Checking wgpu-hal v0.17.2
[INFO] [stderr]     Checking wgpu-core v0.17.1
[INFO] [stderr]     Checking wgpu v0.17.2
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]    Migrating examples/displaymode.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `decklink_cxx`
[INFO] [stderr]  --> src/bridge.rs
[INFO] [stderr]   = cause: error: expected one of `->`, `;`, `where`, or `{`, found keyword `unsafe`
[INFO] [stderr]               --> src/bridge.rs:476:46
[INFO] [stderr]                |
[INFO] [stderr]            244 |     unsafe extern "C++" {
[INFO] [stderr]                |                         - while parsing this item list starting here
[INFO] [stderr]            ...
[INFO] [stderr]            476 |         unsafe fn Release(obj: *mut IUnknown)unsafe ;
[INFO] [stderr]                |                                              ^^^^^^ expected one of `->`, `;`, `where`, or `{`
[INFO] [stderr]            ...
[INFO] [stderr]            490 |     }
[INFO] [stderr]                |     - the item list ends here
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected `;`
[INFO] [stderr]               --> src/bridge.rs:476:46
[INFO] [stderr]                |
[INFO] [stderr]            476 |         unsafe fn Release(obj: *mut IUnknown)unsafe ;
[INFO] [stderr]                |                                              ^^^^^^
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 2 previous errors
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]  --> src/bridge.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ($r:ident, $c:expr) => {
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this changes meaning in Rust 2024
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]   = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ($r:ident, $c:expr_2021) => {
[INFO] [stdout]   |                       +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/bridge.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ($r:ident, $c:expr, $t:ident) => {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ($r:ident, $c:expr_2021, $t:ident) => {
[INFO] [stdout]    |                       +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:258:82
[INFO] [stdout]     |
[INFO] [stdout] 258 |         fn CreateDeckLinkAPIInformationInstance() -> *mut IDeckLinkAPIInformation;
[INFO] [stdout]     |                                                                                  ^
[INFO] [stdout]     |                                                                                  |
[INFO] [stdout]     |                                                                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout]     = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:265:71
[INFO] [stdout]     |
[INFO] [stdout] 265 |         fn Release(self: Pin<&mut IDeckLinkAPIInformation>) -> c_ulong;
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout]     |                                                                       |
[INFO] [stdout]     |                                                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:271:57
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn Release(self: Pin<&mut IDeckLink>) -> c_ulong;
[INFO] [stdout]     |                                                         ^
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:273:70
[INFO] [stdout]     |
[INFO] [stdout] 273 |         fn CreateDeckLinkIteratorInstance() -> *mut IDeckLinkIterator;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout]     |                                                                      |
[INFO] [stdout]     |                                                                      help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:278:23
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:280:65
[INFO] [stdout]     |
[INFO] [stdout] 280 |         fn Release(self: Pin<&mut IDeckLinkIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:296:23
[INFO] [stdout]     |
[INFO] [stdout] 296 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:298:76
[INFO] [stdout]     |
[INFO] [stdout] 298 |         fn Release(self: Pin<&mut IDeckLinkDisplayModeIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:300:84
[INFO] [stdout]     |
[INFO] [stdout] 300 |         fn GetDisplayMode(self: Pin<&mut IDeckLinkDisplayMode>) -> c_BMDDisplayMode;
[INFO] [stdout]     |                                                                                    ^
[INFO] [stdout]     |                                                                                    |
[INFO] [stdout]     |                                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:301:68
[INFO] [stdout]     |
[INFO] [stdout] 301 |         fn GetWidth(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:302:69
[INFO] [stdout]     |
[INFO] [stdout] 302 |         fn GetHeight(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:308:68
[INFO] [stdout]     |
[INFO] [stdout] 308 |         fn Release(self: Pin<&mut IDeckLinkDisplayMode>) -> c_ulong;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:325:23
[INFO] [stdout]     |
[INFO] [stdout] 325 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:326:69
[INFO] [stdout]     |
[INFO] [stdout] 326 |         fn StartStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:327:68
[INFO] [stdout]     |
[INFO] [stdout] 327 |         fn StopStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:328:62
[INFO] [stdout]     |
[INFO] [stdout] 328 |         fn Release(self: Pin<&mut IDeckLinkInput>) -> c_ulong;
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |                                                              |
[INFO] [stdout]     |                                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:333:23
[INFO] [stdout]     |
[INFO] [stdout] 333 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:346:23
[INFO] [stdout]     |
[INFO] [stdout] 346 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:355:94
[INFO] [stdout]     |
[INFO] [stdout] 355 |         fn DetachAllPackets(self: Pin<&mut IDeckLinkVideoFrameAncillaryPackets>) -> c_hresult;
[INFO] [stdout]     |                                                                                              ^
[INFO] [stdout]     |                                                                                              |
[INFO] [stdout]     |                                                                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:357:66
[INFO] [stdout]     |
[INFO] [stdout] 357 |         fn GetDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                  ^
[INFO] [stdout]     |                                                                  |
[INFO] [stdout]     |                                                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:358:67
[INFO] [stdout]     |
[INFO] [stdout] 358 |         fn GetSDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:359:74
[INFO] [stdout]     |
[INFO] [stdout] 359 |         fn GetLineNumber(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u32; // On output, zero is auto
[INFO] [stdout]     |                                                                          ^
[INFO] [stdout]     |                                                                          |
[INFO] [stdout]     |                                                                          help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:360:78
[INFO] [stdout]     |
[INFO] [stdout] 360 | ...ut IDeckLinkAncillaryPacket>) -> u8; // Usually zero. Can only be 1 if non-SD and the first data stream is completely full
[INFO] [stdout]     |                                       ^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:362:67
[INFO] [stdout]     |
[INFO] [stdout] 362 |         fn GetWidth(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout]     |                                                                   |
[INFO] [stdout]     |                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:363:68
[INFO] [stdout]     |
[INFO] [stdout] 363 |         fn GetHeight(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |                                                                    |
[INFO] [stdout]     |                                                                    help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:364:70
[INFO] [stdout]     |
[INFO] [stdout] 364 |         fn GetRowBytes(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout]     |                                                                      |
[INFO] [stdout]     |                                                                      help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:369:23
[INFO] [stdout]     |
[INFO] [stdout] 369 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:381:23
[INFO] [stdout]     |
[INFO] [stdout] 381 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:395:23
[INFO] [stdout]     |
[INFO] [stdout] 395 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:404:23
[INFO] [stdout]     |
[INFO] [stdout] 404 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:409:23
[INFO] [stdout]     |
[INFO] [stdout] 409 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:411:63
[INFO] [stdout]     |
[INFO] [stdout] 411 |         fn Release(self: Pin<&mut IDeckLinkOutput>) -> c_ulong;
[INFO] [stdout]     |                                                               ^
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:415:76
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fn CreateVideoConversionInstance() -> *mut IDeckLinkVideoConversion;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:421:23
[INFO] [stdout]     |
[INFO] [stdout] 421 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:425:56
[INFO] [stdout]     |
[INFO] [stdout] 425 |         fn Release(self: Pin<&mut IUnknown>) -> c_ulong;
[INFO] [stdout]     |                                                        ^
[INFO] [stdout]     |                                                        |
[INFO] [stdout]     |                                                        help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:444:34
[INFO] [stdout]     |
[INFO] [stdout] 444 |         ) -> *mut ConversionFrame;
[INFO] [stdout]     |                                  ^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:446:96
[INFO] [stdout]     |
[INFO] [stdout] 446 |         unsafe fn new_input_callback(callback: *mut RustInputCallback) -> *mut CXXInputCallback;
[INFO] [stdout]     |                                                                                                ^
[INFO] [stdout]     |                                                                                                |
[INFO] [stdout]     |                                                                                                help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:448:99
[INFO] [stdout]     |
[INFO] [stdout] 448 |         unsafe fn new_output_callback(callback: *mut RustOutputCallback) -> *mut CXXOutputCallback;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:450:69
[INFO] [stdout]     |
[INFO] [stdout] 450 |         unsafe fn GetDisplayName(decklink: *mut IDeckLink) -> String;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:452:87
[INFO] [stdout]     |
[INFO] [stdout] 452 |         unsafe fn GetDisplayModeName(displayMode: *mut IDeckLinkDisplayMode) -> String;
[INFO] [stdout]     |                                                                                       ^
[INFO] [stdout]     |                                                                                       |
[INFO] [stdout]     |                                                                                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:454:99
[INFO] [stdout]     |
[INFO] [stdout] 454 |         unsafe fn GetInput(decklink: *mut IDeckLink, input: *mut *mut IDeckLinkInput) -> c_hresult;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout]     |                                                                                                   |
[INFO] [stdout]     |                                                                                                   help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:459:23
[INFO] [stdout]     |
[INFO] [stdout] 459 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:464:23
[INFO] [stdout]     |
[INFO] [stdout] 464 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:467:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |             -> c_hresult;
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:474:23
[INFO] [stdout]     |
[INFO] [stdout] 474 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: extern blocks should be unsafe
[INFO] [stdout]    --> src/bridge.rs:476:46
[INFO] [stdout]     |
[INFO] [stdout] 476 |         unsafe fn Release(obj: *mut IUnknown);
[INFO] [stdout]     |                                              ^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: needs `unsafe` before the extern keyword: `unsafe`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         type RustInputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout]    = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:68:64
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn video_input_format_changed(self: &RustInputCallback);
[INFO] [stdout]    |                                                                ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |         type RustOutputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:79:69
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn scheduled_playback_has_stopped(self: &RustOutputCallback);
[INFO] [stdout]    |                                                                     ^ usage of unsafe attribute
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-attributes.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating examples/input.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/output.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/apiinfo.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.16s
[INFO] [stderr] crater-edition-check: decklink-cxx v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling decklink-cxx v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `invoke_vcvars_if_not_set` is never used
[INFO] [stdout]   --> build.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn invoke_vcvars_if_not_set() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vcvars_set` is never used
[INFO] [stdout]    --> build.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn vcvars_set() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_vcvars_all_bat` is never used
[INFO] [stdout]    --> build.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn search_vcvars_all_bat() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `guess_vcvars_all_bat` is never used
[INFO] [stdout]    --> build.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn guess_vcvars_all_bat() -> Option<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_vcvarsall_bat_arch_arg` is never used
[INFO] [stdout]    --> build.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn determine_vcvarsall_bat_arch_arg() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/sources/decklink-cxx/src/bridge.rs.cc:3:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from ./include/callback.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:85: warning: unused parameter 'notificationEvents' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:127: warning: unused parameter 'newDisplayMode' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:176: warning: unused parameter 'detectedSignalFlags' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:10:115: warning: unused parameter 'audioPacket' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    10 | HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioPacket) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:15:68: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    15 | HRESULT STDMETHODCALLTYPE CXXInputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                             ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame*, BMDOutputFrameCompletionResult)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:39:120: warning: unused parameter 'result' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    39 | HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:49:69: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    49 | HRESULT STDMETHODCALLTYPE CXXOutputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                              ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from ./include/bridge.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc: In member function 'virtual HRESULT ConversionFrame::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc:101:67: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:   101 | HRESULT STDMETHODCALLTYPE ConversionFrame::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                            ~~~~~~~^~~
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:258:82
[INFO] [stdout]     |
[INFO] [stdout] 258 |         fn CreateDeckLinkAPIInformationInstance() -> *mut IDeckLinkAPIInformation;
[INFO] [stdout]     |                                                                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:265:71
[INFO] [stdout]     |
[INFO] [stdout] 265 |         fn Release(self: Pin<&mut IDeckLinkAPIInformation>) -> c_ulong;
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:271:57
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn Release(self: Pin<&mut IDeckLink>) -> c_ulong;
[INFO] [stdout]     |                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:273:70
[INFO] [stdout]     |
[INFO] [stdout] 273 |         fn CreateDeckLinkIteratorInstance() -> *mut IDeckLinkIterator;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:278:23
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:280:65
[INFO] [stdout]     |
[INFO] [stdout] 280 |         fn Release(self: Pin<&mut IDeckLinkIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:296:23
[INFO] [stdout]     |
[INFO] [stdout] 296 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:298:76
[INFO] [stdout]     |
[INFO] [stdout] 298 |         fn Release(self: Pin<&mut IDeckLinkDisplayModeIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:300:84
[INFO] [stdout]     |
[INFO] [stdout] 300 |         fn GetDisplayMode(self: Pin<&mut IDeckLinkDisplayMode>) -> c_BMDDisplayMode;
[INFO] [stdout]     |                                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:301:68
[INFO] [stdout]     |
[INFO] [stdout] 301 |         fn GetWidth(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:302:69
[INFO] [stdout]     |
[INFO] [stdout] 302 |         fn GetHeight(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:258:82
[INFO] [stdout]     |
[INFO] [stdout] 258 |         fn CreateDeckLinkAPIInformationInstance() -> *mut IDeckLinkAPIInformation;
[INFO] [stdout]     |                                                                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:308:68
[INFO] [stdout]     |
[INFO] [stdout] 308 |         fn Release(self: Pin<&mut IDeckLinkDisplayMode>) -> c_ulong;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:325:23
[INFO] [stdout]     |
[INFO] [stdout] 325 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:264:23
[INFO] [stdout]     |
[INFO] [stdout] 264 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:326:69
[INFO] [stdout]     |
[INFO] [stdout] 326 |         fn StartStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:327:68
[INFO] [stdout]     |
[INFO] [stdout] 327 |         fn StopStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:265:71
[INFO] [stdout]     |
[INFO] [stdout] 265 |         fn Release(self: Pin<&mut IDeckLinkAPIInformation>) -> c_ulong;
[INFO] [stdout]     |                                                                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:328:62
[INFO] [stdout]     |
[INFO] [stdout] 328 |         fn Release(self: Pin<&mut IDeckLinkInput>) -> c_ulong;
[INFO] [stdout]     |                                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:271:57
[INFO] [stdout]     |
[INFO] [stdout] 271 |         fn Release(self: Pin<&mut IDeckLink>) -> c_ulong;
[INFO] [stdout]     |                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:333:23
[INFO] [stdout]     |
[INFO] [stdout] 333 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:273:70
[INFO] [stdout]     |
[INFO] [stdout] 273 |         fn CreateDeckLinkIteratorInstance() -> *mut IDeckLinkIterator;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:346:23
[INFO] [stdout]     |
[INFO] [stdout] 346 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:278:23
[INFO] [stdout]     |
[INFO] [stdout] 278 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:355:94
[INFO] [stdout]     |
[INFO] [stdout] 355 |         fn DetachAllPackets(self: Pin<&mut IDeckLinkVideoFrameAncillaryPackets>) -> c_hresult;
[INFO] [stdout]     |                                                                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:280:65
[INFO] [stdout]     |
[INFO] [stdout] 280 |         fn Release(self: Pin<&mut IDeckLinkIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                 ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:357:66
[INFO] [stdout]     |
[INFO] [stdout] 357 |         fn GetDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:358:67
[INFO] [stdout]     |
[INFO] [stdout] 358 |         fn GetSDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:359:74
[INFO] [stdout]     |
[INFO] [stdout] 359 |         fn GetLineNumber(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u32; // On output, zero is auto
[INFO] [stdout]     |                                                                          ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:296:23
[INFO] [stdout]     |
[INFO] [stdout] 296 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:360:78
[INFO] [stdout]     |
[INFO] [stdout] 360 | ...   fn GetDataStreamIndex(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8; // Usually zero. Can only be 1 if non-SD and the first...
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:362:67
[INFO] [stdout]     |
[INFO] [stdout] 362 |         fn GetWidth(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:298:76
[INFO] [stdout]     |
[INFO] [stdout] 298 |         fn Release(self: Pin<&mut IDeckLinkDisplayModeIterator>) -> c_ulong;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:300:84
[INFO] [stdout]     |
[INFO] [stdout] 300 |         fn GetDisplayMode(self: Pin<&mut IDeckLinkDisplayMode>) -> c_BMDDisplayMode;
[INFO] [stdout]     |                                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:363:68
[INFO] [stdout]     |
[INFO] [stdout] 363 |         fn GetHeight(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:364:70
[INFO] [stdout]     |
[INFO] [stdout] 364 |         fn GetRowBytes(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:301:68
[INFO] [stdout]     |
[INFO] [stdout] 301 |         fn GetWidth(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:369:23
[INFO] [stdout]     |
[INFO] [stdout] 369 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:302:69
[INFO] [stdout]     |
[INFO] [stdout] 302 |         fn GetHeight(self: Pin<&mut IDeckLinkDisplayMode>) -> c_long;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:381:23
[INFO] [stdout]     |
[INFO] [stdout] 381 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:307:23
[INFO] [stdout]     |
[INFO] [stdout] 307 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:395:23
[INFO] [stdout]     |
[INFO] [stdout] 395 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:404:23
[INFO] [stdout]     |
[INFO] [stdout] 404 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:409:23
[INFO] [stdout]     |
[INFO] [stdout] 409 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:308:68
[INFO] [stdout]     |
[INFO] [stdout] 308 |         fn Release(self: Pin<&mut IDeckLinkDisplayMode>) -> c_ulong;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:411:63
[INFO] [stdout]     |
[INFO] [stdout] 411 |         fn Release(self: Pin<&mut IDeckLinkOutput>) -> c_ulong;
[INFO] [stdout]     |                                                               ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:415:76
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fn CreateVideoConversionInstance() -> *mut IDeckLinkVideoConversion;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:325:23
[INFO] [stdout]     |
[INFO] [stdout] 325 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:421:23
[INFO] [stdout]     |
[INFO] [stdout] 421 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:326:69
[INFO] [stdout]     |
[INFO] [stdout] 326 |         fn StartStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:425:56
[INFO] [stdout]     |
[INFO] [stdout] 425 |         fn Release(self: Pin<&mut IUnknown>) -> c_ulong;
[INFO] [stdout]     |                                                        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:327:68
[INFO] [stdout]     |
[INFO] [stdout] 327 |         fn StopStreams(self: Pin<&mut IDeckLinkInput>) -> c_hresult;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:444:34
[INFO] [stdout]     |
[INFO] [stdout] 444 |         ) -> *mut ConversionFrame;
[INFO] [stdout]     |                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:446:96
[INFO] [stdout]     |
[INFO] [stdout] 446 |         unsafe fn new_input_callback(callback: *mut RustInputCallback) -> *mut CXXInputCallback;
[INFO] [stdout]     |                                                                                                ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:328:62
[INFO] [stdout]     |
[INFO] [stdout] 328 |         fn Release(self: Pin<&mut IDeckLinkInput>) -> c_ulong;
[INFO] [stdout]     |                                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:448:99
[INFO] [stdout]     |
[INFO] [stdout] 448 |         unsafe fn new_output_callback(callback: *mut RustOutputCallback) -> *mut CXXOutputCallback;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:333:23
[INFO] [stdout]     |
[INFO] [stdout] 333 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:450:69
[INFO] [stdout]     |
[INFO] [stdout] 450 |         unsafe fn GetDisplayName(decklink: *mut IDeckLink) -> String;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:346:23
[INFO] [stdout]     |
[INFO] [stdout] 346 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:452:87
[INFO] [stdout]     |
[INFO] [stdout] 452 |         unsafe fn GetDisplayModeName(displayMode: *mut IDeckLinkDisplayMode) -> String;
[INFO] [stdout]     |                                                                                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:350:23
[INFO] [stdout]     |
[INFO] [stdout] 350 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:454:99
[INFO] [stdout]     |
[INFO] [stdout] 454 |         unsafe fn GetInput(decklink: *mut IDeckLink, input: *mut *mut IDeckLinkInput) -> c_hresult;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:459:23
[INFO] [stdout]     |
[INFO] [stdout] 459 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:355:94
[INFO] [stdout]     |
[INFO] [stdout] 355 |         fn DetachAllPackets(self: Pin<&mut IDeckLinkVideoFrameAncillaryPackets>) -> c_hresult;
[INFO] [stdout]     |                                                                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:464:23
[INFO] [stdout]     |
[INFO] [stdout] 464 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:357:66
[INFO] [stdout]     |
[INFO] [stdout] 357 |         fn GetDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:467:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |             -> c_hresult;
[INFO] [stdout]     |                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:474:23
[INFO] [stdout]     |
[INFO] [stdout] 474 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:358:67
[INFO] [stdout]     |
[INFO] [stdout] 358 |         fn GetSDID(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:476:46
[INFO] [stdout]     |
[INFO] [stdout] 476 |         unsafe fn Release(obj: *mut IUnknown);
[INFO] [stdout]     |                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:359:74
[INFO] [stdout]     |
[INFO] [stdout] 359 |         fn GetLineNumber(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u32; // On output, zero is auto
[INFO] [stdout]     |                                                                          ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:360:78
[INFO] [stdout]     |
[INFO] [stdout] 360 | ...   fn GetDataStreamIndex(self: Pin<&mut IDeckLinkAncillaryPacket>) -> u8; // Usually zero. Can only be 1 if non-SD and the first...
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:362:67
[INFO] [stdout]     |
[INFO] [stdout] 362 |         fn GetWidth(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:363:68
[INFO] [stdout]     |
[INFO] [stdout] 363 |         fn GetHeight(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:364:70
[INFO] [stdout]     |
[INFO] [stdout] 364 |         fn GetRowBytes(self: Pin<&mut IDeckLinkVideoFrame>) -> c_long;
[INFO] [stdout]     |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:369:23
[INFO] [stdout]     |
[INFO] [stdout] 369 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:381:23
[INFO] [stdout]     |
[INFO] [stdout] 381 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:387:23
[INFO] [stdout]     |
[INFO] [stdout] 387 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:395:23
[INFO] [stdout]     |
[INFO] [stdout] 395 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:404:23
[INFO] [stdout]     |
[INFO] [stdout] 404 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:409:23
[INFO] [stdout]     |
[INFO] [stdout] 409 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:411:63
[INFO] [stdout]     |
[INFO] [stdout] 411 |         fn Release(self: Pin<&mut IDeckLinkOutput>) -> c_ulong;
[INFO] [stdout]     |                                                               ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:415:76
[INFO] [stdout]     |
[INFO] [stdout] 415 |         fn CreateVideoConversionInstance() -> *mut IDeckLinkVideoConversion;
[INFO] [stdout]     |                                                                            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:421:23
[INFO] [stdout]     |
[INFO] [stdout] 421 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:425:56
[INFO] [stdout]     |
[INFO] [stdout] 425 |         fn Release(self: Pin<&mut IUnknown>) -> c_ulong;
[INFO] [stdout]     |                                                        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:444:34
[INFO] [stdout]     |
[INFO] [stdout] 444 |         ) -> *mut ConversionFrame;
[INFO] [stdout]     |                                  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:446:96
[INFO] [stdout]     |
[INFO] [stdout] 446 |         unsafe fn new_input_callback(callback: *mut RustInputCallback) -> *mut CXXInputCallback;
[INFO] [stdout]     |                                                                                                ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:448:99
[INFO] [stdout]     |
[INFO] [stdout] 448 |         unsafe fn new_output_callback(callback: *mut RustOutputCallback) -> *mut CXXOutputCallback;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:450:69
[INFO] [stdout]     |
[INFO] [stdout] 450 |         unsafe fn GetDisplayName(decklink: *mut IDeckLink) -> String;
[INFO] [stdout]     |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:452:87
[INFO] [stdout]     |
[INFO] [stdout] 452 |         unsafe fn GetDisplayModeName(displayMode: *mut IDeckLinkDisplayMode) -> String;
[INFO] [stdout]     |                                                                                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:454:99
[INFO] [stdout]     |
[INFO] [stdout] 454 |         unsafe fn GetInput(decklink: *mut IDeckLink, input: *mut *mut IDeckLinkInput) -> c_hresult;
[INFO] [stdout]     |                                                                                                   ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:459:23
[INFO] [stdout]     |
[INFO] [stdout] 459 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:464:23
[INFO] [stdout]     |
[INFO] [stdout] 464 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:467:25
[INFO] [stdout]     |
[INFO] [stdout] 467 |             -> c_hresult;
[INFO] [stdout]     |                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:474:23
[INFO] [stdout]     |
[INFO] [stdout] 474 |         ) -> c_hresult;
[INFO] [stdout]     |                       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> src/bridge.rs:476:46
[INFO] [stdout]     |
[INFO] [stdout] 476 |         unsafe fn Release(obj: *mut IUnknown);
[INFO] [stdout]     |                                              ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/bridge.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConversionFrame`
[INFO] [stdout]  --> src/lib.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 |     decklink_ffi::{self, ConversionFrame, IDeckLinkVideoFrame},
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `marker::PhantomData`
[INFO] [stdout]  --> src/lib.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{marker::PhantomData, pin::Pin, ptr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/bridge.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConversionFrame`
[INFO] [stdout]  --> src/lib.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 |     decklink_ffi::{self, ConversionFrame, IDeckLinkVideoFrame},
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `marker::PhantomData`
[INFO] [stdout]  --> src/lib.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{marker::PhantomData, pin::Pin, ptr};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         type RustInputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:68:64
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn video_input_format_changed(self: &RustInputCallback);
[INFO] [stdout]    |                                                                ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |         type RustOutputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:79:69
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn scheduled_playback_has_stopped(self: &RustOutputCallback);
[INFO] [stdout]    |                                                                     ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |         type RustInputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:68:64
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn video_input_format_changed(self: &RustInputCallback);
[INFO] [stdout]    |                                                                ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 |         type RustOutputCallback<'a>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:78:10
[INFO] [stdout]    |
[INFO] [stdout] 78 |         );
[INFO] [stdout]    |          ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]   --> src/bridge.rs:79:69
[INFO] [stdout]    |
[INFO] [stdout] 79 |         fn scheduled_playback_has_stopped(self: &RustOutputCallback);
[INFO] [stdout]    |                                                                     ^ usage of unsafe attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/lib.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let result = unsafe { decklink_ffi::GetOutput(self.device, output_ptr) };
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/lib.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let result = unsafe { decklink_ffi::GetOutput(self.device, output_ptr) };
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let result = unsafe { decklink_ffi::GetInput(self.device, input_ptr) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let result = unsafe { decklink_ffi::GetInput(self.device, input_ptr) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let result = unsafe {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let result = unsafe {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let result = unsafe {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let result = unsafe {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/lib.rs:222:47
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let frame_completion_callback = move |frame: *mut decklink_ffi::IDeckLinkVideoFrame| {
[INFO] [stdout]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/lib.rs:222:47
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let frame_completion_callback = move |frame: *mut decklink_ffi::IDeckLinkVideoFrame| {
[INFO] [stdout]     |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let mut pin: Pin<&mut decklink_ffi::IDeckLinkVideoFrame> =
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         let mut pin: Pin<&mut decklink_ffi::IDeckLinkVideoFrame> =
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/lib.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let res = unsafe {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/lib.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let res = unsafe {
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let result = unsafe { pin.GetPacketIterator(ancillary_packet_iterator_ptr) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let result = unsafe { pin.GetPacketIterator(ancillary_packet_iterator_ptr) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |         let result = unsafe { pin.AttachPacket(packet.packet) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |         let result = unsafe { pin.AttachPacket(packet.packet) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let result = unsafe { pin.DetachPacket(packet.packet) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let result = unsafe { pin.DetachPacket(packet.packet) };
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let result = pin.DetachAllPackets();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/lib.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |         let result = pin.DetachAllPackets();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/lib.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let res =
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]    --> src/lib.rs:638:13
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let res =
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/sources/decklink-cxx/src/bridge.rs.cc:3:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from ./include/callback.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:85: warning: unused parameter 'notificationEvents' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:127: warning: unused parameter 'newDisplayMode' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:176: warning: unused parameter 'detectedSignalFlags' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:10:115: warning: unused parameter 'audioPacket' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    10 | HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioPacket) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:15:68: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    15 | HRESULT STDMETHODCALLTYPE CXXInputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                             ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame*, BMDOutputFrameCompletionResult)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:39:120: warning: unused parameter 'result' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    39 | HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:49:69: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    49 | HRESULT STDMETHODCALLTYPE CXXOutputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                              ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from ./include/bridge.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc: In member function 'virtual HRESULT ConversionFrame::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc:101:67: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:   101 | HRESULT STDMETHODCALLTYPE ConversionFrame::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                            ~~~~~~~^~~
[INFO] [stderr] error: could not compile `decklink-cxx` (lib) due to 59 previous errors; 15 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: Compiler version doesn't include clang or GCC: "c++" "--version"
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/sources/decklink-cxx/src/bridge.rs.cc:3:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/include/decklink-cxx/src/bridge.rs.h:5,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/callback.h:2,
[INFO] [stderr] warning: decklink-cxx@0.1.0:                  from ./include/callback.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: /opt/rustwide/target/debug/build/decklink-cxx-56270de2a87cc55d/out/cxxbridge/crate/decklink-cxx/include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFormatChanged(BMDVideoInputFormatChangedEvents, IDeckLinkDisplayMode*, BMDDetectedVideoInputFormatFlags)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:85: warning: unused parameter 'notificationEvents' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:127: warning: unused parameter 'newDisplayMode' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:5:176: warning: unused parameter 'detectedSignalFlags' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:     5 | HRESULT CXXInputCallback::VideoInputFormatChanged (BMDVideoInputFormatChangedEvents notificationEvents, IDeckLinkDisplayMode* newDisplayMode, BMDDetectedVideoInputFormatFlags detectedSignalFlags) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame*, IDeckLinkAudioInputPacket*)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:10:115: warning: unused parameter 'audioPacket' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    10 | HRESULT CXXInputCallback::VideoInputFrameArrived(IDeckLinkVideoInputFrame* videoFrame, IDeckLinkAudioInputPacket* audioPacket) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXInputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:15:68: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    15 | HRESULT STDMETHODCALLTYPE CXXInputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                             ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame*, BMDOutputFrameCompletionResult)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:39:120: warning: unused parameter 'result' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    39 | HRESULT CXXOutputCallback::ScheduledFrameCompleted(IDeckLinkVideoFrame* completedFrame, BMDOutputFrameCompletionResult result) {
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc: In member function 'virtual HRESULT CXXOutputCallback::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/callback.cc:49:69: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    49 | HRESULT STDMETHODCALLTYPE CXXOutputCallback::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                              ~~~~~~~^~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: In file included from ./include/bridge.cc:1:
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h: In constructor 'ConversionFrame::ConversionFrame(long int, long int, long int, BMDPixelFormat)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:47:33: warning: 'ConversionFrame::m_timeScale' will be initialized after [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    47 |         BMDTimeScale            m_timeScale;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                 ^~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:42:17: warning:   'int32_t ConversionFrame::m_refCount' [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    42 |     int32_t     m_refCount;
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                 ^~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.h:53:5: warning:   when initialized here [-Wreorder]
[INFO] [stderr] warning: decklink-cxx@0.1.0:    53 |     ConversionFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat) :
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |     ^~~~~~~~~~~~~~~
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc: In member function 'virtual HRESULT ConversionFrame::QueryInterface(REFIID, void**)':
[INFO] [stderr] warning: decklink-cxx@0.1.0: ./include/bridge.cc:101:67: warning: unused parameter 'iid' [-Wunused-parameter]
[INFO] [stderr] warning: decklink-cxx@0.1.0:   101 | HRESULT STDMETHODCALLTYPE ConversionFrame::QueryInterface (REFIID iid, LPVOID *ppv)
[INFO] [stderr] warning: decklink-cxx@0.1.0:       |                                                            ~~~~~~~^~~
[INFO] [stderr] error: could not compile `decklink-cxx` (lib test) due to 59 previous errors; 15 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a", kill_on_drop: false }`
[INFO] [stdout] 56cbc4f61ddc2ed0951b34c893baed90ac4b1e66d4b045608c0ae624e752f07a
